package com.cskaoyan.javase.oop2._1extends._7initialization._2basic;
/**
 * 注意事项：
 * 1.子类对象隐式初始化，JVM总是调用父类的无参构造，如果父类没有，就要编译报错。
 *      所以，之前我们说给一个类顺手提供默认无参是一个好习惯，就在于这里。
 *          因为子类对象隐式初始化依赖于父类的无参构造
 *          除此之外,还有一些框架管理创建对象,也需要使用类的无参构造
 *
 * 2.Object类也有默认无参。
 * 3.隐式初始化总是不传参数，如果我们想要对参数进行赋值，就必须使用显式的子类初始化。
 *
 * @since 17:07
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        Son s = new Son(18);
    }
}
class Father{
    int age;

    public Father(int age) {
        this.age = age;
    }
}
// Son类的子类对象隐式初始化,需要依赖于父类的无参构造,但是父类没有无参构造器
class Son extends Father{
    public Son(int age) {
        super(age);
    }
}